SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE proc [dbo].[SP_TXMVTO_CNTB_Q12]
/*-------------------------------------------------------------------*/
/*----- Empresa           : OFISIS S.A.                          ----*/
/*----- Cliente           : OFISIS S.A.                          ----*/
/*----- Sistema           : Contabilidad                         ----*/
/*----- Modulo            : Empresa                              ----*/
/*----- Programa          : Reporte Libro Mayor General          ----*/
/*----- Nombre            : SP_TXMVTO_CNTB_Q12                   ----*/
/*----- Script            : TXMVTO_CNTB                          ----*/
/*----- Desarrollado por  : Israel Estrada Polanco               ----*/
/*----- Fecha             : 11/10/1997                           ----*/
/*----- Base de Datos     : MS SQL Server                        ----*/
/*----- Version BD        : 2000                                 ----*/
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*----- Modificado 1      : Percy Garcia         		         ----*/
/*----- Fecha	          : 01/12/2003   		            	 ----*/
/*----- Detalle 	      : Se aumento join con la empresa en el 
cursor (tmauxi_empr)                                             ----*/
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*----- Modificado 2      : PDGV                                 ----*/        
/*----- Fecha             : 17/05/2006                           ----*/        
/*----- Detalle           : EL ORDER BY FINAL SE AUMENTO DOC, 
FECHAASTO,NU_ASTO                                                ----*/        
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*----- Drop proc SP_TXMVTO_CNTB_Q12                             ----*/
/*----- Grant Execute on SP_TXMVTO_CNTB_Q12 to PUBLIC            ----*/
/*----- Exec SP_TXMVTO_CNTB_Q12 '01', 1, 2002, 0, 0, 'SOL', '', '', 
'', '', '', '', '', 5, 'AUD', 'luz', '', 
"And  TMAUXI_EMPR.CO_AUXI_EMPR Like '%1009202740100%' And  
TMAUXI_EMPR.TI_AUXI_EMPR in ( 'C')", "And TXMVTO_CNTB.CO_AUXI_EMPR 
Like '%1009202740100%' And TXMVTO_CNTB.TI_AUXI_EMPR in ( 'C')"    ----*/
/*--------------------------------------------------------------------*/
@ISCO_EMPR			TD_VC_002,
@INNU_CNTB_EMPR		TD_IN_001_CONT,
@INNU_ANNO			TD_IN_004_ANNO,
@INNU_MESE_INIC     TD_IN_002_MESE,
@INNU_MESE_FINA     TD_IN_002_MESE,
@ISCO_MONE			TD_VC_003,
@ISCO_UNID_CNTB		TD_VC_003,
@ISCO_OPRC_CNTB		TD_VC_003,
@ISCO_CNTA_EMP1		TD_VC_020_CNTA,
@ISCO_CNTA_EMP2		TD_VC_020_CNTA,
@ISTI_AUXI_EMPR		TD_VC_001,
@ISCO_AUXI_EMP1		TD_VC_020,
@ISCO_AUXI_EMP2		TD_VC_020,
@INNV_INFO_CNTA		TD_IN_001,
@ISTI_REPO			TD_VC_003,
@ISNO_USUA			TD_VC_050,
@ISCA_WHER_SALD     Varchar(2000), -- Where Filtro Cursor de Saldos
@ISCA_WHER_AUXI     Varchar(2000), -- Where Filtro Cursor Tabla Auxiliares 
@ISCA_WHER          Varchar(2000), -- Where Tabla de Movimientos
@ISIN_UNID			TD_VC_001      -- U = Unidad, G = Todas las Unidades

As
Create Table #TWMVTO_CNTB_Q12_1
(NU_MESE_QUIE      int           NULL,
 CO_CNTA_EMPR      VarChar(20)   NULL,
 DE_CNTA_EMPR	   VarChar(100)  NULL, 
 TO_CARG	       Numeric(16,4) NULL,
 TO_ABON           Numeric(16,4) NULL,
 NU_MESE	       int           NULL,
 FE_ASTO_CNTB	   Datetime      NULL, 
 NU_SECU	       int           NULL,
 CO_CNTB_EMP1	   VarChar(20)   NULL, 
 TI_AUXI_EMPR	   Char(01)      NULL,
 CO_AUXI_EMPR	   Varchar(20)   NULL, 
 CO_UNID_CNTB	   Char(03)      NULL,
 CO_OPRC_CNTB	   Char(03)      NULL, 
 NU_ASTO	       Char(10)      NULL,
 TI_DOCU	       Char(03)      NULL, 
 NU_DOCU	       Char(20)      NULL,
 FE_DOCU	       Datetime      NULL, 
 MO_MONT	       Numeric(16,4) NULL, 
 DE_GLOS	       Varchar(100)  NULL,
 IM_DEBE		   Numeric(16,4) NULL, 
 IM_HABE		   Numeric(16,4) NULL,
 CO_TABL_ORIG      INT           NULL, 
 CO_CLAV_TAOR      VARCHAR(100)  NULL,
 CO_ORDE_SERV      char(20)      NULL	  )

Declare 
@VSCO_MONE_CONT   TD_VC_003,
@CSTI_AUXI        TD_VC_010, 
@CSCO_CNTA        TD_VC_020_CNTA,
@CSNO_CNTA        TD_VC_050, 
@CNIM_CARG        TD_NU_016_004,
@CNIM_ABON	      TD_NU_016_004,	
@VNNU_MESE        TD_IN_001,	
@VDFE_TRAB        TD_DT_001,
@VNNU_SECU	      TD_IN_002, 
@VSCO_CNTA        TD_VC_020_CNTA, 
@VSTI_AUXI        TD_VC_001,
@VSCO_AUXI	      TD_VC_020, 
@VSCO_UNID        TD_VC_003, 
@VSCO_OPRC        TD_VC_003,
@VSNU_ASTO	      TD_VC_010, 
@VSTI_DOCU        TD_VC_003, 
@VSNU_DOCU        TD_VC_020,
@VDFE_DOCU	      TD_DT_001, 
@VSDE_GLOS        TD_VC_100, 
@VNIM_DEBE        TD_NU_016_004, 
@VNIM_HABE	      TD_NU_016_004, 
@VSDE_CMD1        Char(255), 
@VSDE_CMD2        Char(255),
@VNIM_SALD_CARG   TD_NU_016_004, 
@VNIM_SALD_ABON   TD_NU_016_004,  
@VNIM_CARG_INIC   TD_NU_016_004,
@VNIM_ABON_INIC   TD_NU_016_004,
@VSNU_MESE        Varchar(2),
@VSNU_ANNO        Varchar(4),
@VSNV_INFO_CNTA   Varchar(2),
@VSNU_CNTB_EMPR   Varchar(2),
@VSIM_CARG        Varchar(20),
@VSIM_ABON        Varchar(20), 
@VSCA_WHER_MOVI	  TD_VC_255, 
@VSCA_WHER_SALD	  TD_VC_255

/*----------- FILTRO POR UNIDAD -------------*/

If @ISIN_UNID = 'U'
 Begin
  Select @VSCA_WHER_MOVI = ' TXMVTO_CNTB.CO_UNID_CNTB = "' + @ISCO_UNID_CNTB + '" And '
  Select @VSCA_WHER_SALD = ' TASALD_EMPR.CO_UNID_CNTB = "' + @ISCO_UNID_CNTB + '" And '
 End
Else 
 Begin
  Select @VSCA_WHER_MOVI = ''
  Select @VSCA_WHER_SALD = ''
 End

/*----------- R E P O R T E S   D E   A U X I L I A R -------------*/

Select @VSCO_MONE_CONT = CO_MONE From TTCNTB_EMPR 
Where 
CO_EMPR = @ISCO_EMPR And
NU_CNTB_EMPR = @INNU_CNTB_EMPR

If @ISCO_MONE = @VSCO_MONE_CONT 
   Begin
    Select @VNNU_MESE = @INNU_MESE_INIC
    While @VNNU_MESE <= @INNU_MESE_FINA
	
      Begin

	  Select @VSNU_MESE = Convert(Varchar, @VNNU_MESE)
	  Select @VSNU_ANNO = Convert(Varchar, @INNU_ANNO)
	  Select @VSNU_CNTB_EMPR = Convert(Varchar, @INNU_CNTB_EMPR)
	  Select @VSNV_INFO_CNTA = Convert(Varchar, @INNV_INFO_CNTA)

	  Exec ( 'Insert Into #TWMVTO_CNTB_Q12_1 (NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR,
 			TO_CARG,TO_ABON, NU_MESE, FE_ASTO_CNTB, NU_SECU, TI_AUXI_EMPR, CO_AUXI_EMPR, 
            CO_UNID_CNTB,CO_OPRC_CNTB,NU_ASTO,TI_DOCU,NU_DOCU,FE_DOCU, MO_MONT, 
            DE_GLOS,IM_DEBE,IM_HABE, CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV )
		   Select ' + @VSNU_MESE + ', T3.CODIGO, T3.NOMBRE, IsNull(T3.CARGO, 0), Isnull(T3.ABONO, 0), 
 		    TXMVTO_CNTB.NU_MESE, TXMVTO_CNTB.FE_ASTO_CNTB, TXMVTO_CNTB.NU_SECU, 
		    T3.TIPO, TXMVTO_CNTB.CO_CNTA_EMPR, TXMVTO_CNTB.CO_UNID_CNTB, 
		    TXMVTO_CNTB.CO_OPRC_CNTB, TXMVTO_CNTB.NU_ASTO, TXMVTO_CNTB.TI_DOCU, 
		    TXMVTO_CNTB.NU_DOCU, TXMVTO_CNTB.FE_DOCU, 
		    Round(IsNull(TXMVTO_CNTB.IM_MVTO_ORIG, 0), 2), TXMVTO_CNTB.DE_GLOS, 
		    (ASCII(TXMVTO_CNTB.TI_OPER)/67)*Round(TXMVTO_CNTB.IM_MVTO_CNTB,2),
            (65/ASCII(TXMVTO_CNTB.TI_OPER))*Round(TXMVTO_CNTB.IM_MVTO_CNTB,2),
		    TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR, 
		    TXMVTO_CNTB.CO_ORDE_SERV 
                  From TMAUXI_EMPR, 
				(Select TMAUXI_EMPR.TI_AUXI_EMPR AS TIPO, 
					TMAUXI_EMPR.CO_AUXI_EMPR AS CODIGO, 
			        MAX(TMAUXI_EMPR.NO_AUXI) AS NOMBRE,
			        ISNULL(SUM(Isnull(TASALD_EMPR.IM_CARG_CNTB, 0)),0) AS CARGO, 
			        ISNULL(SUM(Isnull(TASALD_EMPR.IM_ABON_CNTB, 0)),0) AS ABONO
				  From TMAUXI_EMPR
				  Left Outer Join TASALD_EMPR
				  On TASALD_EMPR.CO_EMPR = "' + @ISCO_EMPR +  '"   
				  And	TASALD_EMPR.NU_CNTB_EMPR  = ' + @VSNU_CNTB_EMPR + ' 
				  And	TASALD_EMPR.NU_ANNO = ' + @VSNU_ANNO  + ' 
				  And   TASALD_EMPR.NU_MESE < ' + @VSNU_MESE + ' 
				  And   ' + @VSCA_WHER_SALD + ' DATALENGTH(RTRIM(TASALD_EMPR.CO_CNTA_EMPR)) = ' + @VSNV_INFO_CNTA + '
				  And	TMAUXI_EMPR.CO_EMPR = TASALD_EMPR.CO_EMPR 
				  And   TMAUXI_EMPR.TI_AUXI_EMPR = TASALD_EMPR.TI_AUXI_EMPR 
				  And	TMAUXI_EMPR.CO_AUXI_EMPR = TASALD_EMPR.CO_AUXI_EMPR 
				Where	TMAUXI_EMPR.CO_EMPR = "' + @ISCO_EMPR + '" 
				Group By TMAUXI_EMPR.TI_AUXI_EMPR, TMAUXI_EMPR.CO_AUXI_EMPR ) T3
			Left Outer Join TXMVTO_CNTB
			On TXMVTO_CNTB.CO_EMPR = "' + @ISCO_EMPR +  '" 
		  	And TXMVTO_CNTB.NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + ' 
		  	And TXMVTO_CNTB.NU_ANNO = ' + @VSNU_ANNO  + ' 
		  	And TXMVTO_CNTB.NU_MESE = ' + @VSNU_MESE + ' 
		  	And ' + @VSCA_WHER_MOVI + ' TXMVTO_CNTB.SI_MVTO_CNTB = "APR" ' + @ISCA_WHER + '
			And TXMVTO_CNTB.TI_AUXI_EMPR = T3.TIPO 
			And TXMVTO_CNTB.CO_AUXI_EMPR = T3.CODIGO 
          Where TMAUXI_EMPR.CO_EMPR = "' + @ISCO_EMPR +  '" ' + @ISCA_WHER_AUXI + '
		  And 	T3.TIPO = TMAUXI_EMPR.TI_AUXI_EMPR 
		  And   T3.CODIGO = TMAUXI_EMPR.CO_AUXI_EMPR')
	
	 Select @VNNU_MESE = @VNNU_MESE + 1
      End
If @ISTI_REPO = 'AUD'	/*---- AUXILIAR ordenado por Unidad -----*/
 Begin
  Select NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, TI_AUXI_EMPR, TO_CARG, TO_ABON,
   NU_MESE, convert(varchar(10),FE_ASTO_CNTB,103), NU_SECU, CO_AUXI_EMPR, 
   CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,
   TI_DOCU, NU_DOCU, convert(varchar(10),FE_DOCU,103), MO_MONT, DE_GLOS, IM_DEBE, IM_HABE  ,
   CO_TABL_ORIG , CO_CLAV_TAOR, '', CO_ORDE_SERV
  From #TWMVTO_CNTB_Q12_1
  Where TO_CARG > 0 Or TO_ABON > 0 Or MO_MONT > 0 Or IM_DEBE > 0 Or IM_HABE > 0
 Order By NU_MESE_QUIE, CO_CNTA_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO
 End
If @ISTI_REPO = 'AOD'	/*---- AUXILIAR ordenado por Operacion -----*/
 Begin
  Select NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, 
     TI_AUXI_EMPR, TO_CARG, TO_ABON,
     NU_MESE, convert(varchar(10),FE_ASTO_CNTB,103), NU_SECU, CO_AUXI_EMPR, 
     CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,
     TI_DOCU, NU_DOCU, convert(varchar(10),FE_DOCU,103), MO_MONT, DE_GLOS, IM_DEBE, IM_HABE ,
     CO_TABL_ORIG , CO_CLAV_TAOR, '', CO_ORDE_SERV
  From #TWMVTO_CNTB_Q12_1
  Where TO_CARG > 0 Or TO_ABON > 0 Or MO_MONT > 0 Or IM_DEBE > 0 Or IM_HABE > 0
  Order By NU_MESE_QUIE, CO_CNTA_EMPR, CO_OPRC_CNTB, CO_UNID_CNTB, NU_ASTO
 End	
If @ISTI_REPO = 'AVD'	/*---- AUXILIAR ordenado por Voucher -----*/
 Begin
  Select NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, 
     TI_AUXI_EMPR, TO_CARG, TO_ABON,
     NU_MESE, convert(varchar(10),FE_ASTO_CNTB,103), NU_SECU, 
     CO_AUXI_EMPR,CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,
     TI_DOCU, NU_DOCU, convert(varchar(10),FE_DOCU,103), MO_MONT, DE_GLOS, IM_DEBE, IM_HABE ,
     CO_TABL_ORIG , CO_CLAV_TAOR, '', CO_ORDE_SERV
  From #TWMVTO_CNTB_Q12_1
  Where TO_CARG > 0 Or TO_ABON > 0 Or MO_MONT > 0 Or IM_DEBE > 0 Or IM_HABE > 0
  Order By NU_MESE_QUIE, CO_CNTA_EMPR, NU_ASTO, CO_UNID_CNTB, CO_OPRC_CNTB
 End	
If @ISTI_REPO = 'AFD'	/*---- AUXILIAR ordenado por Fecha -----*/ 
 Begin
  Select NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, 
     TI_AUXI_EMPR, TO_CARG, TO_ABON,
     NU_MESE, convert(varchar(10),FE_ASTO_CNTB,103), NU_SECU, CO_AUXI_EMPR, 
     CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,
     TI_DOCU, NU_DOCU, convert(varchar(10),FE_DOCU,103), MO_MONT, DE_GLOS, IM_DEBE, IM_HABE ,
     CO_TABL_ORIG , CO_CLAV_TAOR, '', CO_ORDE_SERV
  From #TWMVTO_CNTB_Q12_1
  Where TO_CARG > 0 Or TO_ABON > 0 Or MO_MONT > 0 Or IM_DEBE > 0 Or IM_HABE > 0
  Order By NU_MESE_QUIE, CO_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB
 End	
If @ISTI_REPO = 'AUR'
 Begin
   Select NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, TI_AUXI_EMPR, TO_CARG = MAX(TO_CARG),
       TO_ABON = MAX(TO_ABON), 
       CO_CNTA_EMPR, DE_CNTA_EMPR, NU_MESE,IM_DEBE = Isnull(SUM(Isnull(IM_DEBE, 0)), 0), IM_HABE = Isnull(SUM(Isnull(IM_HABE, 0)), 0) 
    From #TWMVTO_CNTB_Q12_1
   Where TO_CARG > 0 Or TO_ABON > 0 Or IM_DEBE > 0 Or IM_HABE > 0
   Group By NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, TI_AUXI_EMPR, NU_MESE 
 End
If @ISTI_REPO = 'AOR'	/*---- AUXILIAR ordenado por Operacion -----*/
 Begin
    Select NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, TI_AUXI_EMPR, 
      TO_CARG = MAX(TO_CARG), TO_ABON = MAX(TO_ABON), CO_CNTA_EMPR,
      DE_CNTA_EMPR, NU_MESE,
      IM_DEBE = Isnull(SUM(Isnull(IM_DEBE, 0)), 0), IM_HABE = Isnull(SUM(Isnull(IM_HABE, 0)), 0) 
    From #TWMVTO_CNTB_Q12_1
    Where TO_CARG > 0 Or TO_ABON > 0 Or IM_DEBE > 0 Or IM_HABE > 0
    Group By NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, TI_AUXI_EMPR, NU_MESE
 End	
If @ISTI_REPO = 'AVR'	/*---- AUXILIAR ordenado por Voucher -----*/
 Begin
     Select NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, TI_AUXI_EMPR, 
       TO_CARG = MAX(TO_CARG), TO_ABON = MAX(TO_ABON), 
       CO_CNTA_EMPR, DE_CNTA_EMPR, NU_MESE,
	IM_DEBE = Isnull(SUM(Isnull(IM_DEBE, 0)), 0), 
	IM_HABE = Isnull(SUM(Isnull(IM_HABE, 0)), 0) 
     From #TWMVTO_CNTB_Q12_1
     Where TO_CARG > 0 Or TO_ABON > 0 Or IM_DEBE > 0 Or IM_HABE > 0
   Group By NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, TI_AUXI_EMPR, NU_MESE
 End	
If @ISTI_REPO = 'AFR'	/*---- AUXILIAR ordenado por Fecha -----*/
 Begin
 Select NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, TI_AUXI_EMPR, TO_CARG = MAX(TO_CARG),
      	TO_ABON =  MAX(TO_ABON),CO_CNTA_EMPR, DE_CNTA_EMPR, NU_MESE , 
	IM_DEBE = Isnull(SUM(Isnull(IM_DEBE, 0)), 0), 
	IM_HABE = Isnull(SUM(Isnull(IM_HABE, 0)), 0) 
  From #TWMVTO_CNTB_Q12_1
  Where TO_CARG > 0 Or TO_ABON > 0 Or IM_DEBE > 0 Or IM_HABE > 0
  Group By NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR, TI_AUXI_EMPR, NU_MESE 
 End

 End
       /*--- DIFERENTE A LA MONEDA DE LA CONTABILIDAD ---*/
If @ISCO_MONE != @VSCO_MONE_CONT 
    Begin
    Select @VNNU_MESE = @INNU_MESE_INIC
      While @VNNU_MESE <= @INNU_MESE_FINA
	  Begin
	       Select @VSNU_MESE = Convert(Varchar, @VNNU_MESE)
	       Select @VSNU_ANNO = Convert(Varchar, @INNU_ANNO)
	       Select @VSNU_CNTB_EMPR = Convert(Varchar, @INNU_CNTB_EMPR)
	       Select @VSNV_INFO_CNTA = Convert(Varchar, @INNV_INFO_CNTA)

	  Exec ( 'Insert Into #TWMVTO_CNTB_Q12_1 (NU_MESE_QUIE, CO_CNTA_EMPR, DE_CNTA_EMPR,
 		  TO_CARG,TO_ABON, NU_MESE, FE_ASTO_CNTB, NU_SECU, TI_AUXI_EMPR, CO_AUXI_EMPR, 
          CO_UNID_CNTB,CO_OPRC_CNTB,NU_ASTO,TI_DOCU,NU_DOCU,FE_DOCU, MO_MONT, 
          DE_GLOS,IM_DEBE,IM_HABE, CO_TABL_ORIG , CO_CLAV_TAOR, CO_ORDE_SERV )
		  Select ' + @VSNU_MESE + ', TMAUXI_EMPR.CO_AUXI_EMPR, TMAUXI_EMPR.NO_AUXI,
		  IsNull(T3.CARGO, 0), Isnull(T3.ABONO, 0), TXMVTO_CNTB.NU_MESE, 
		  TXMVTO_CNTB.FE_ASTO_CNTB, TXMVTO_CNTB.NU_SECU, TMAUXI_EMPR.TI_AUXI_EMPR, 
		  TXMVTO_CNTB.CO_CNTA_EMPR, TXMVTO_CNTB.CO_UNID_CNTB, TXMVTO_CNTB.CO_OPRC_CNTB, 
		  TXMVTO_CNTB.NU_ASTO, TXMVTO_CNTB.TI_DOCU, TXMVTO_CNTB.NU_DOCU, TXMVTO_CNTB.FE_DOCU, 
		  Round(IsNull(TXMVTO_CNTB.IM_MVTO_ORIG, 0), 2), TXMVTO_CNTB.DE_GLOS, 
		  (ASCII(TXMVTO_CNTB.TI_OPER)/67)*Round(TXMVTO_CNTB.IM_MVTO_ORIG,2),
          (65/ASCII(TXMVTO_CNTB.TI_OPER))*Round(TXMVTO_CNTB.IM_MVTO_ORIG,2),
		  TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR, TXMVTO_CNTB.CO_ORDE_SERV 
          From TMAUXI_EMPR

			Left Outer Join (Select TASALD_EMPR.TI_AUXI_EMPR AS TIPO, 
				TASALD_EMPR.CO_AUXI_EMPR AS CODIGO, 
			        ISNULL(SUM(Isnull(TASALD_EMPR.IM_CARG_ORIG, 0)),0) AS CARGO, 
			        ISNULL(SUM(Isnull(TASALD_EMPR.IM_ABON_ORIG, 0)),0) AS ABONO
				From TASALD_EMPR, TMPLAN_EMPR
				Where	TASALD_EMPR.CO_EMPR = "' + @ISCO_EMPR +  '" ' + ' 
				And TASALD_EMPR.NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + ' 
				And TASALD_EMPR.NU_ANNO = ' + @VSNU_ANNO  + ' 
				And TASALD_EMPR.NU_MESE < ' + @VSNU_MESE + ' 
				And ' + @VSCA_WHER_SALD + ' DATALENGTH(RTRIM(TASALD_EMPR.CO_CNTA_EMPR)) = ' + @VSNV_INFO_CNTA + ' 
				And TASALD_EMPR.TI_AUXI_EMPR IS NOT NULL 
				And TASALD_EMPR.CO_AUXI_EMPR IS NOT NULL 
				And TMPLAN_EMPR.CO_EMPR = TASALD_EMPR.CO_EMPR 
				And TMPLAN_EMPR.NU_ANNO = 9999 
				And TMPLAN_EMPR.CO_CNTA_EMPR = TASALD_EMPR.CO_CNTA_EMPR 
				And TMPLAN_EMPR.CO_MONE = "' + @ISCO_MONE +  '"
				Group By TASALD_EMPR.TI_AUXI_EMPR, TASALD_EMPR.CO_AUXI_EMPR ) T3
			On TMAUXI_EMPR.TI_AUXI_EMPR = T3.TIPO 
			And TMAUXI_EMPR.CO_AUXI_EMPR = T3.CODIGO

			Left Outer Join TXMVTO_CNTB
			On TXMVTO_CNTB.CO_EMPR = "' + @ISCO_EMPR +  '" 
			And TXMVTO_CNTB.NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + ' 
			And TXMVTO_CNTB.NU_ANNO = ' + @VSNU_ANNO  + ' 
			And TXMVTO_CNTB.NU_MESE = ' + @VSNU_MESE + ' 
			And ' + @VSCA_WHER_MOVI + ' TXMVTO_CNTB.SI_MVTO_CNTB = "APR" ' + @ISCA_WHER + '
			And TMAUXI_EMPR.CO_EMPR = TXMVTO_CNTB.CO_EMPR And 
			TMAUXI_EMPR.TI_AUXI_EMPR = TXMVTO_CNTB.TI_AUXI_EMPR And 
			TMAUXI_EMPR.CO_AUXI_EMPR = TXMVTO_CNTB.CO_AUXI_EMPR
          Where TMAUXI_EMPR.CO_EMPR = "' + @ISCO_EMPR +  '" ' + @ISCA_WHER_AUXI )

	  Select @VNNU_MESE = @VNNU_MESE + 1
	  End

If @ISTI_REPO = 'AUD'	/*---- AUXILIAR ordenado por Unidad -----*/
 Begin
  Select T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, T1.TO_CARG, 
   T1.TO_ABON, T1.NU_MESE, convert(varchar(10),T1.FE_ASTO_CNTB,103), T1.NU_SECU, 
   T1.CO_AUXI_EMPR, T1.CO_UNID_CNTB, T1.CO_OPRC_CNTB, T1.NU_ASTO, T1.TI_DOCU, T1.NU_DOCU, 
   convert(varchar(10),T1.FE_DOCU,103), T1.MO_MONT, T1.DE_GLOS, T1.IM_DEBE, T1.IM_HABE  ,
   T1.CO_TABL_ORIG, T1.CO_CLAV_TAOR, '', T1.CO_ORDE_SERV
  From #TWMVTO_CNTB_Q12_1 T1, TMPLAN_EMPR T2
  Where (T1.TO_CARG > 0 Or T1.TO_ABON > 0 Or T1.MO_MONT > 0 Or T1.IM_DEBE > 0 Or T1.IM_HABE > 0)
  AND   T2.CO_EMPR = @ISCO_EMPR
  AND   T2.NU_ANNO = 9999
  AND   T2.CO_CNTA_EMPR = T1.CO_AUXI_EMPR
  AND   T2.CO_MONE = @ISCO_MONE
 Order By T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.CO_UNID_CNTB, T1.CO_OPRC_CNTB, t1.TI_DOCU,T1.NU_DOCU,
 T1.FE_ASTO_CNTB,T1.NU_ASTO
 
End
If @ISTI_REPO = 'AOD'	/*---- AUXILIAR ordenado por Operacion -----*/
 Begin
  Select T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, T1.TO_CARG, 
   T1.TO_ABON, T1.NU_MESE, convert(varchar(10),T1.FE_ASTO_CNTB,103), T1.NU_SECU, 
   T1.CO_AUXI_EMPR, T1.CO_UNID_CNTB, T1.CO_OPRC_CNTB, T1.NU_ASTO, T1.TI_DOCU, T1.NU_DOCU, 
   convert(varchar(10),T1.FE_DOCU,103), T1.MO_MONT, T1.DE_GLOS, T1.IM_DEBE, T1.IM_HABE  ,
   T1.CO_TABL_ORIG, T1.CO_CLAV_TAOR, '', T1.CO_ORDE_SERV
  From #TWMVTO_CNTB_Q12_1 T1, TMPLAN_EMPR T2
  Where (T1.TO_CARG > 0 Or T1.TO_ABON > 0 Or T1.MO_MONT > 0 Or T1.IM_DEBE > 0 Or T1.IM_HABE > 0)
  AND   T2.CO_EMPR = @ISCO_EMPR
  AND   T2.NU_ANNO = 9999
  AND   T2.CO_CNTA_EMPR = T1.CO_AUXI_EMPR
  AND   T2.CO_MONE = @ISCO_MONE
  Order By T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.CO_OPRC_CNTB, T1.CO_UNID_CNTB, t1.TI_DOCU,T1.NU_DOCU,
  T1.FE_ASTO_CNTB,T1.NU_ASTO
   
 End	
If @ISTI_REPO = 'AVD'	/*---- AUXILIAR ordenado por Voucher -----*/
 Begin
  Select T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, T1.TO_CARG, 
   T1.TO_ABON, T1.NU_MESE, convert(varchar(10),T1.FE_ASTO_CNTB,103), T1.NU_SECU, 
   T1.CO_AUXI_EMPR, T1.CO_UNID_CNTB, T1.CO_OPRC_CNTB, T1.NU_ASTO, T1.TI_DOCU, T1.NU_DOCU, 
   convert(varchar(10),T1.FE_DOCU,103), T1.MO_MONT, T1.DE_GLOS, T1.IM_DEBE, T1.IM_HABE  ,
   T1.CO_TABL_ORIG, T1.CO_CLAV_TAOR, '', T1.CO_ORDE_SERV
  From #TWMVTO_CNTB_Q12_1 T1, TMPLAN_EMPR T2
  Where (T1.TO_CARG > 0 Or T1.TO_ABON > 0 Or T1.MO_MONT > 0 Or T1.IM_DEBE > 0 Or T1.IM_HABE > 0)
  AND   T2.CO_EMPR = @ISCO_EMPR
  AND   T2.NU_ANNO = 9999
  AND   T2.CO_CNTA_EMPR = T1.CO_AUXI_EMPR
  AND   T2.CO_MONE = @ISCO_MONE
  Order By T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.NU_ASTO, T1.CO_UNID_CNTB, T1.CO_OPRC_CNTB,
  t1.TI_DOCU,T1.NU_DOCU,T1.FE_ASTO_CNTB
 End	
If @ISTI_REPO = 'AFD'	/*---- AUXILIAR ordenado por Fecha -----*/ 
 Begin
  Select T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, T1.TO_CARG, 
   T1.TO_ABON, T1.NU_MESE, convert(varchar(10),T1.FE_ASTO_CNTB,103), T1.NU_SECU, 
   T1.CO_AUXI_EMPR, T1.CO_UNID_CNTB, T1.CO_OPRC_CNTB, T1.NU_ASTO, T1.TI_DOCU, T1.NU_DOCU, 
   convert(varchar(10),T1.FE_DOCU,103), T1.MO_MONT, T1.DE_GLOS, T1.IM_DEBE, T1.IM_HABE  ,
   T1.CO_TABL_ORIG, T1.CO_CLAV_TAOR, '', T1.CO_ORDE_SERV
  From #TWMVTO_CNTB_Q12_1 T1, TMPLAN_EMPR T2
  Where (T1.TO_CARG > 0 Or T1.TO_ABON > 0 Or T1.MO_MONT > 0 Or T1.IM_DEBE > 0 Or T1.IM_HABE > 0)
  AND   T2.CO_EMPR = @ISCO_EMPR
  AND   T2.NU_ANNO = 9999
  AND   T2.CO_CNTA_EMPR = T1.CO_AUXI_EMPR
  AND   T2.CO_MONE = @ISCO_MONE
  Order By T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.FE_ASTO_CNTB, T1.CO_UNID_CNTB, T1.CO_OPRC_CNTB,
  t1.TI_DOCU,T1.NU_DOCU, T1.NU_ASTO
 End	
If @ISTI_REPO = 'AUR'
 Begin
   Select T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, 
       TO_CARG = MAX(T1.TO_CARG), TO_ABON = MAX(T1.TO_ABON), T1.CO_CNTA_EMPR, 
       T1.DE_CNTA_EMPR, T1.NU_MESE, IM_DEBE = Isnull(SUM(Isnull(T1.IM_DEBE, 0)), 0), 
       IM_HABE = Isnull(SUM(Isnull(T1.IM_HABE, 0)), 0) 
   From #TWMVTO_CNTB_Q12_1 T1, TMPLAN_EMPR T2
   Where (T1.TO_CARG > 0 Or T1.TO_ABON > 0 Or T1.IM_DEBE > 0 Or T1.IM_HABE > 0)
   AND   T2.CO_EMPR = @ISCO_EMPR
   AND   T2.NU_ANNO = 9999
   AND   T2.CO_CNTA_EMPR = T1.CO_AUXI_EMPR
   AND   T2.CO_MONE = @ISCO_MONE
   Group By T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, T1.NU_MESE 
 End
If @ISTI_REPO = 'AOR'	/*---- AUXILIAR ordenado por Operacion -----*/
 Begin
    Select T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, 
      TO_CARG = MAX(T1.TO_CARG), TO_ABON = MAX(T1.TO_ABON), T1.CO_CNTA_EMPR,
      T1.DE_CNTA_EMPR, T1.NU_MESE, IM_DEBE = Isnull(SUM(Isnull(T1.IM_DEBE, 0)), 0), 
      IM_HABE = Isnull(SUM(Isnull(T1.IM_HABE, 0)), 0) 
    From #TWMVTO_CNTB_Q12_1 T1, TMPLAN_EMPR T2
    Where (T1.TO_CARG > 0 Or T1.TO_ABON > 0 Or T1.IM_DEBE > 0 Or T1.IM_HABE > 0)
    AND   T2.CO_EMPR = @ISCO_EMPR
    AND   T2.NU_ANNO = 9999
    AND   T2.CO_CNTA_EMPR = T1.CO_AUXI_EMPR
    AND   T2.CO_MONE = @ISCO_MONE
    Group By T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, T1.NU_MESE
 End	
If @ISTI_REPO = 'AVR'	/*---- AUXILIAR ordenado por Voucher -----*/
 Begin
     Select T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, 
       	TO_CARG = MAX(T1.TO_CARG), TO_ABON = MAX(T1.TO_ABON), T1.CO_CNTA_EMPR, 
	T1.DE_CNTA_EMPR, T1.NU_MESE, IM_DEBE = Isnull(SUM(Isnull(T1.IM_DEBE, 0)), 0), 
	IM_HABE = Isnull(SUM(Isnull(T1.IM_HABE, 0)), 0) 
     From #TWMVTO_CNTB_Q12_1 T1, TMPLAN_EMPR T2
     Where (T1.TO_CARG > 0 Or T1.TO_ABON > 0 Or T1.IM_DEBE > 0 Or T1.IM_HABE > 0)
     AND   T2.CO_EMPR = @ISCO_EMPR
     AND   T2.NU_ANNO = 9999
     AND   T2.CO_CNTA_EMPR = T1.CO_AUXI_EMPR
     AND   T2.CO_MONE = @ISCO_MONE
   Group By T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, T1.NU_MESE
 End	
If @ISTI_REPO = 'AFR'	/*---- AUXILIAR ordenado por Fecha -----*/
 Begin
 Select T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, 
       	TO_CARG = MAX(T1.TO_CARG), TO_ABON = MAX(T1.TO_ABON), T1.CO_CNTA_EMPR, 
	T1.DE_CNTA_EMPR, T1.NU_MESE, IM_DEBE = Isnull(SUM(Isnull(T1.IM_DEBE, 0)), 0), 
	IM_HABE = Isnull(SUM(Isnull(T1.IM_HABE, 0)), 0) 
  From #TWMVTO_CNTB_Q12_1 T1, TMPLAN_EMPR T2
  Where (T1.TO_CARG > 0 Or T1.TO_ABON > 0 Or T1.IM_DEBE > 0 Or T1.IM_HABE > 0)
     AND   T2.CO_EMPR = @ISCO_EMPR
     AND   T2.NU_ANNO = 9999
     AND   T2.CO_CNTA_EMPR = T1.CO_AUXI_EMPR
     AND   T2.CO_MONE = @ISCO_MONE
  Group By T1.NU_MESE_QUIE, T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_AUXI_EMPR, T1.NU_MESE 
 End

 End

return
/*------------------------------ Fin --------------------------------*/




GO
